package top.jiangqiang.qyblog.core.service;

import top.jiangqiang.qyblog.common.base.query.PageResult;
import top.jiangqiang.qyblog.common.base.response.Result;
import top.jiangqiang.qyblog.core.base.service.BaseService;
import top.jiangqiang.qyblog.core.domain.dto.BlogTagAddDto;
import top.jiangqiang.qyblog.core.domain.dto.BlogTagUpdateDto;
import top.jiangqiang.qyblog.core.domain.dto.TagQueryDto;
import top.jiangqiang.qyblog.core.domain.entity.BlogTag;
import top.jiangqiang.qyblog.core.domain.vo.BlogTagVo;

/**
 * <p>
 * 文章标签 服务类
 * </p>
 *
 * @author JiangQiang
 * @since 2023-05-29
 */
public interface ITagService extends BaseService<BlogTag> {

    Result<PageResult<BlogTagVo>> findByCondition(TagQueryDto tagQueryDto);

    Result<BlogTagVo> saveTag(BlogTagAddDto tagAddDto);

    Result<BlogTagVo> editTag(BlogTagUpdateDto tagUpdateDto);

    Boolean deleteTag(Long id);

    Result<BlogTagVo> getTag(Long id);

    BlogTagVo getTagByTagName(String tagName);

    Long saveTag(String tagName);
}
